package com.librelato.persistencia;

import java.util.ArrayList;
import java.util.List;

import com.librelato.bean.FornecedorBean;
import com.librelato.bean.NotaFiscalEntradaBean;
import com.librelato.bean.ProdutoBean;
import com.librelato.persistencia.config.SQLConfiguracao;
import com.librelato.persistencia.enums.EnumCondicao;
import com.librelato.persistencia.interfaces.INotaFiscalEntradaDao;
import com.librelato.util.Ferramentas;

public class NotaFiscalEntradaDao<P extends NotaFiscalEntradaBean> extends
		DaoGenerico<P> implements INotaFiscalEntradaDao<P> {

	@Override
	public String procuraPorParam(String tabela, String campo, String valor,
			EnumCondicao condicao) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public P salvar(P p) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void excluir(P p) throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public void editar(P p) throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public void preSalvar(P p) {
		// TODO Auto-generated method stub

	}

	public List<NotaFiscalEntradaBean> buscaUltimasNotasProduto(
			ProdutoBean produto) throws Exception {
		List<NotaFiscalEntradaBean> notasFiscais = new ArrayList<NotaFiscalEntradaBean>();
		NotaFiscalEntradaBean notaFiscalEntrada = null;
		try {
			conn = GerenciadorConexao.getConexao();
			query = SQLConfiguracao.getInstance().getValor(
					"localiza_ultimas_notas_produto");
			ps = conn.prepareStatement(query);
			ps.setString(1, produto.getCodigo());
			rs = ps.executeQuery();
			while (rs.next()) {
				notaFiscalEntrada = new NotaFiscalEntradaBean();
				notaFiscalEntrada.setCodigo(rs.getString("D1_DOC"));
				notaFiscalEntrada.setDataEmissao(Ferramentas.formataData(
						rs.getString("D1_EMISSAO"), "yyyyMMdd"));
				notaFiscalEntrada.setDataEntrada(Ferramentas.formataData(
						rs.getString("D1_DTDIGIT"), "yyyyMMdd"));
				notaFiscalEntrada.setFilial(rs.getString("D1_FILIAL"));
				notaFiscalEntrada.setFornecedor(new FornecedorBean(rs
						.getString("A2_COD"), rs.getString("A2_NOME")));
				notaFiscalEntrada.setQuantidade(rs.getDouble("D1_QUANT"));
				notaFiscalEntrada.setSerie(rs.getString("D1_SERIE"));
				notaFiscalEntrada.setTipo(rs.getString("D1_TIPO"));
				notaFiscalEntrada.setValorUni(rs.getDouble("D1_VUNIT"));
				notaFiscalEntrada.setValorTotal(notaFiscalEntrada
						.getQuantidade() * notaFiscalEntrada.getValorUni());
				notasFiscais.add(notaFiscalEntrada);
			}

		} catch (Exception e) {
			throw e;
		} finally {
			super.fecharRecursos(ps, rs);
		}

		return notasFiscais;

	}
}
